Wiki
Clone wikidarudar-backend / Ресурсы пользователя
[TOC] #Формат объекта ##В списке
#!json { "pk_user": 171463, "login": "tester", "sex": 0, "active": 1, "avatar": { "uri_c50": "http://img53.static.darudar.org/c50/02/00/ff/b3/ffb359da7ade35eb1734669baf2fd0d679d51104.jpg", "uri_c600": "http://img53.static.darudar.org/c600/02/00/ff/b3/ffb359da7ade35eb1734669baf2fd0d679d51104.jpg" }, "thanks_count": 0, "gifts_presented_count": 0, "profile": { // <-- расширенная информация (профиль, см. ниже) "name": "tester", "city": { "pk_city": 447109, "city_name": "Жуковский", "region_name": "Москва и Московская обл.", "country_name": "Россия (Russia)", "country_code": "RU" } } }
##Полный
#!json { "pk_user": 171452, // ID пользователя "login": "brutto", // Логин пользователя "sex": 2, // Пол (см. ниже) "dtime_registration": 1353951897, // timestamp регистрации в системе "dtime_visited": 1478681506, // timestamp последнего визита "active": 1, // Статус профиля (см. ниже) "avatar": { // <-- Ссылки на файл с аватаром "uri_c50": "http://img62.static.darudar.org/c50/00/00/57/6c/576ccc19e0103e892456f4ea3f71e3c02670a2f7.jpg", "uri_c600": "http://img62.static.darudar.org/c600/00/00/57/6c/576ccc19e0103e892456f4ea3f71e3c02670a2f7.jpg" }, "gifts_count": 20, // Кол-во опубликованных даров "thanks_count": 38, // Кол-во опубликованных благодарностей "gifts_presented_count": 0, // Кол-во даров со статусом <Подарено> "gifts_offered_count": 17, // Кол-во даров со статусом <Дарится> "profile": { // Расширенная информация о пользователе (профиль) "name": "Антонина", "birth_date": [ // <-- указанная дата рождения 1987, // <-- null если год скрыт настройками приватности 9, // <-- месяц 8 // <-- день ] "about": "Хоп хей!", "city": { "pk_city": 445961, "city_name": "Архара", "region_name": "Амурская обл.", "country_name": "Россия (Russia)", "country_code": "RU" } }, "relations:me": { <-- Отношения текущего пользователя "subscription": { <-- Подписка "pk_sub": 3, <-- Идентификатор подпискки "dtime": 1481291683 <-- Дата оформления подписки } } }
sex
может принимать следующие значения:
- 0 - не указан,
- 1 - муж,
- 2 - жен.
Поле active
может принимать следующие значения:
- 2 -- профиль требуется активация,
- 1 -- профиль активен,
- 0 -- профиль заблокирован,
- -1 -- профиль удалён
Поле profile
может отсутствовать, если в настройках приватности профиля указаны соответствующие настройки.
#Ресурсы пользователя
Настройки
Текущий пользователь
URI: GET ~/me
Информация о текущем авторизованном пользователе. Данный метод отличается от вывода профиля сообщника (хотя и похож, пока). Отличия в следующем:
- профиль
profile
показывается всегда (вне зависимости от настроек приватности) - в профиле присутствуют настройки приватности
privacy
- наличие контактов
contacts
- дата рождения, если указана, всегда выводится (вне зависимости от настроек приватности)
Пример ответа:
#!json { "me": { ... поля из полного вывода профиля пользователя "profile": { ... поля из полного вывода профиля пользователя "privacy": { // <-- настройки приватности профиля "fk_user": 171452, "hide_profile_to_guest": true, "hide_birth_year": true }, "birth_date": [ // <-- указанная дата рождения 1987, 9, 8 ] }, "contacts": [ {...}, // <-- контакты (см. контакты в списке) {...}, ], "media": { // <-- медиа-файлы "avatar": [ {...} // <-- файл-аватара с указателем ] } } }
Текущий пользователь (редактирование профиля)
URI: PUT ~/me
Редактирование профиля пользователя
Параметр | Тип | Значение |
---|---|---|
name | string | Имя (max 250) |
about | text | О себе |
sex* | int | Пол |
birth_date | string | Дата рождения (в формате YYYY-MM-DD) |
avatar | int | Файл-изображение |
hide_year_birth | bool | Настройка для скрытия года рождения |
hide_profile_to_guest | bool | Настройка для скрытия профиля для гостей |
Параметр sex
может принимать следующие значения:
- 0 -- пол не указан
- 1 -- мужской
- 2 -- женский
Пример запроса:
PUT /me HTTP/1.1 Host: api.brutto.dev.darudar.com Content-Type: application/x-www-form-urlencoded Authorization: <token> Cache-Control: no-cache avatar=1103&name=%D0%92%D0%BE%D1%82%D0%B0%D0%BA%D0%BE%D0%B2+%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%801&birth_date=2013-02-02&sex=1&about=%D0%A7%D1%82%D0%BE-%D1%82%D0%BE+%D1%82%D0%B0%D0%BA%D0%BE%D0%B5+%D1%83%D0%B6%D0%B5+%D0%B1%D1%8B%D0%BB%D0%BE&hide_year_birth=1&hide_profile_to_guest=1
Пример ответа:
#!json { "saved": "ok" }
Профиль пользователя
URI: GET ~/users/<login>
Профиль пользователя <login>
.
Пример запроса:
GET /users/brutto HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
user
будет находится JSON-объект профиля пользователя.
Пример ответа:
#!json { "user": {...} <-- пользователь (см. выше полный формат вывода) }
Списки даров пользователя
URI: GET ~/users/<login>/gifts[/<flow>]
Список даров пользователя <login>
. Опционально можно указать <flow>
-- это фильтр даров, который фильтрует дары по их статусу. Он может принимать следующие значения: all | offered | promised | given | trashed | drafted | deleted Значение <flow>
по умолчанию: all. Доступна постраничная навигация.
Значения flow
:
- all -- все опубликованные дары
- offered -- дары в статусе "Дарится"
- promised -- дары в статусе "Обещано"
- given -- дары в статусе "Подарено"
- trashed -- дары пометкой "не-дар"
- drafted -- дары-черновики
- deleted -- дары, которые были удалены*
! Удалить дар может или сам автор дара или же система автоматически по времени истечения. Удалённый дар доступен в течение 14 дней с момента удаления.
Пример запроса:
GET /users/root/gifts?p=1&pp=3 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json accept: application/json authorization: <token>
В ответе в свойстве gifts
будет содержатся список даров указанного <flow>
Пример ответа:
#!json { "gifts": [ {...}, <-- Дар (см. вывод дара в списке) {...}, {...} ], "paginator": {...} // <-- См ссылку ниже/выше о постраничной навигации }
privacy
(приватность) может принимать следующие значения:
- 0 -- публичный,
- 1 -- только для заинтересованных,
Поле status
(статус дара) может принимать следующие значения:
- 0 -- дарится,
- 1 -- обещано,
- 2 -- подарено,
Вы можете использовать paginator
для постраничной навигации.
Оформление подписки на пользователя
URI: POST | DELETE ~/users/<login>/subscribe
Оформление подписки на пользователя <login> (отписка).
Пример запроса:
POST /users/root/subscribe HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "subscribe": "ok" }
unsubscribe
.
Список даров, которые желал пользователь
URI: GET ~/users/<login>/wishes/gifts/<flow>
Список даров, которые желал пользователь <login>. Параметр <flow>
является фильтром даров, которые желал пользователь и может иметь следующие значения: offered | promised | given | other. Если в методе списка даров пользователя параметр flow
обозначает именно статусы самих даров, то в этом методе этот параметр обозначает отношение пользователя <login> к дарам в списке!
Значения flow
:
- offered -- то, что дарится, но не обещано никому
- promised -- то, что обещано пользователю
- given -- то, что подарено пользователю
- other -- то, что обещано или подарено другим
Пример запроса:
GET /users/brutto/wishes/gifts/given?f=0&s=3 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
В ответе придёт список gifts
для указанного flow
.
Пример ответа:
#!json { "gifts": [ {...}, <-- Дар (см. вывод дара в списке) {...}, {...} ], "paginator": {...} // <-- См ссылку ниже/выше о постраничной навигации }
paginator
для постраничной навигации.
Список благодарностей пользователя
URI: GET ~/users/<login>/thanks
Список благодарностей пользователя <login>
за полученные дары.
Пример запроса:
GET /users/brutto/thanks?f=0&s=2 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
В ответе приходит объект thanks
в котором содержатся благодарности указанного пользователя. Доступна постраничная навигация.
Пример ответа:
#!json { "thanks": [ { "pk_thank": 1923823, "dtime": 1459367236, "dtime_update": 1459367236, "text": "привет", "preview": null, "video": [], "score": 0, "comments_count": 0, "author": { "pk_user": 171452, "login": "brutto", "sex": 2, "active": 1, "avatar": { "uri": "http://api.brutto.dev.darudar.com/tmp/uploads/-/c50/00/00/57/6c/576ccc19e0103e892456f4ea3f71e3c02670a2f7.jpg" }, "profile": { "name": "Антонина" } } }, { "pk_thank": 1923822, "dtime": 1459366468, "dtime_update": 1459366468, "text": "пасиб", "preview": null, "video": [], "score": 0, "comments_count": 0, "author": { "pk_user": 171452, "login": "brutto", "sex": 2, "active": 1, "avatar": { "uri": "http://api.brutto.dev.darudar.com/tmp/uploads/-/c50/00/00/57/6c/576ccc19e0103e892456f4ea3f71e3c02670a2f7.jpg" }, "profile": { "name": "Антонина" } } } ], "paginator": {...} // <-- См ссылку ниже/выше о постраничной навигации }
Список встреч
URI: ~/meetings
Список встреч текущего (авторизованного) пользователя.
Пример запроса:
GET /meetings HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "meetings": [ {...}, <-- Встреча (см. вывод встрече на списке) {...}, {...} ] }
Поиск пользователей
URI: GET ~/search/users
Поиск активных участников (пользователей)
Параметр | Тип | Описание |
---|---|---|
q (обязательный) | string | Полнотекстовый запрос |
Пример запроса:
GET /search/users/%D1%88%D1%82%D0%B0%D0%BD%D1%8B%20%D0%BD%D0%B0%20%D0%BB%D1%8F%D0%BC%D0%BA%D0%B0%D1%85 HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "users": [ {...}, <-- Пользователь (см. вывод пользователя на списке) {...} ], "paginator": {...}, <-- см. постраничный вывод "search": { <-- мета по поиску "time": 0.011, <-- время затраченное на поиск "total_found": 2 <-- общее кол-во похожих объектов (пользователей etc) } }
Уведомления пользователя
URI: GET ~/notifications
Последние уведомления пользователя. При получении счётчик непрочитанных событий обнуляется!
Пример запроса:
GET /notifications HTTP/1.1 HOST: api.brutto.dev.darudar.com content-type: application/json authorization: <token> accept: application/json
Пример ответа:
#!json { "notifications": [ {...}, <-- Событие (см. вывод события в списке ) {...} ] }
Поле author
опционально и может отсутствовать для системных событий.
Updated